/**	lxut_inst.h
 *	----	Create Time Stamp	--2007-04-15 22:30:37--
 *------------------------------------------------------------------------------
 *	Mean	:
 *	Author	:Nick Shallery	(nicknide@gmail.com)
 *	Version	:1.0.4.4	(2007-11-13 00:18:23)
 *------------------------------------------------------------------------------
**/	/*YOU HAVE ALL LEFT WITH THIS CODE WHILE YOU KEEP COMMENT IN EVERY COPY.*/

#if			    !defined(__LOLIX_X__LXUT_INST__NICK__K_IN_G__)
#define			__LOLIX_X__LXUT_INST__NICK__K_IN_G__
//==============================================================================
//--------------------------------------------------------------------------

#include	"../lolix/lolix_inst.h"
#include	"../lolix/lolix_type.h"
#include	"../lolix/lolix_macro.h"

#include	"./lxut_macro.h"

namespace lolix{namespace loli{
	class	file_volume_group;
	class	file_volume;
}}
namespace lxut{
	class	lxut_inst;
	class	lxut_cfg;

	namespace mod{
		class lxm_import;
	}
	namespace alice{
		class	regx;
	}
}


class LOLIX_NO_VTABLE lxut::lxut_inst
	: public lolix::lolix_inst
{
public:
	LOLIX_DEFINE_ITF_ID(0x8f73dce5, 0x818e49f8, 0xac083efc, 0x5d8bc302);
	virtual	lolix::size_type	LOLIX_CALL	get_lxut_ver(void)const											= 0;
	virtual	lolix::size_type	LOLIX_CALL	get_lxut_cfg(lxut_cfg* const lx_cfg, size_type lx_cfg_size)const= 0;

	virtual	lolix::LOLIX_RETNV	LOLIX_CALL	create_lxm_import(lxut::mod::lxm_import**)						= 0;
};


LXUT_LIB_C	lolix::LOLIX_RETNV	LOLIX_CALL	LxutCreateInstance(lxut::lxut_inst**, lolix::size_type lxut_ver, lolix::lolix_inst* src_or_in_lx_inst);

#define	_LxutCreateInstance(ppLxutInst, pLx_inst)	LxutCreateInstance(ppLxutInst, LXUT_VERSION, pLx_inst)

SYS_REGIST_TYPE(lxut::lxut_inst);

//--------------------------------------------------------------------------
//==============================================================================
#endif	//	__LOLIX_X__LXUT_INST__NICK__K_IN_G__
